import logging

# 记录器
logger = logging.getLogger()
# 记录器默认打印warning级别以上的日志
logger.setLevel(logging.DEBUG)

# 处理器-终端处理器
CH = logging.StreamHandler()
CH.setLevel(logging.DEBUG)

# 处理器-文件输出处理器
FH = logging.FileHandler('my_log.txt', 'a+', encoding='utf-8')
FH.setLevel(logging.INFO)

# 定义输入格式
formatter = logging.Formatter("%(asctime)s|%(levelname)s|%(filename)s|%(lineno)s|%(message)s")

# 给处理器设置格式
CH.setFormatter(formatter)
FH.setFormatter(formatter)

# 将处理器添加到记录器中
logger.addHandler(CH)
logger.addHandler(FH)

logger.debug("这是debug级别的日志！")
logger.info("这是info级别的日志！")
logger.warning("这是warning级别的日志！")
logger.error("这是error级别的日志！")
logger.critical("这是critical级别的日志！")

try:
    1/0
except Exception as e:
    logger.error(e)
    logger.exception(e)